﻿namespace Busconeitor.BusinessLayer
{
    using Kernel;
    using Utils;

    public class SearchRule
    {
        #region Atributos

        #endregion

        #region Constructores

        #endregion

        #region Propiedades

        #endregion

        #region Metodos

        public SearchResults ProcessQuery(string pQuery)
        {
            // Le paso la consulta al motor de busqueda y este retorna el resultado correspondiente
            var searchResults = SearchEngine.Search(pQuery);
            // Marco los fragmentos a ser resaltados con los terminos de la busqueda
            var matcher = new HighlighResultMatchs(searchResults.ListQuery);

            if (searchResults.Documents !=  null)
            {
                // Resalto los terminos de la busqueda
                for (var i = 0; i < searchResults.Documents.Length; i++)
                {
                    var frag = searchResults.Documents[i].Fragment + "...";
                    searchResults.Documents[i].Fragment = matcher.DoIt(frag);
                } 
            }

            return searchResults;
        } 
        
        #endregion
    }
}
